La página de listado del blog se ha refactorizado para que el código esté más organizado y sea reutilizable. Para probarlo, vamos a añadir una página que muestre la información individual de cada uno de los posts identificados por un id de la base de datos.
Para comenzar, creamos una nueva función en "model.php" que recupere la información de un post dado un id:
Ahora, creamos un nuevo fichero "show.php" el controlador de esta nueva página:
Finalmente, crear una nueva plantilla en show.php, dentro de la carpeta templates, para presentar la información:
Crear esta segunda página es ahora muy sencillo y no hay código duplicado. Aún así, esta página introduce más posibles problemas que un framework puede resolver. Por ejemplo, no poner un id, o poner un id inválido, provocaría un fallo en la consulta. Sería mejor si simplemente se mostrara una página 404 de error, pero esto no puede hacerse ahora mismo de forma sencilla. Y peor, si no se valida la entrada de datos del parámetro id, existe el riesgo de un ataque de SQL injection.
Otro gran problema es que cada controlador individual debe incluir el fichero "model.php". ¿Qué ocurriría si fuera necesario incluir un nuevo fichero o alguna tarea global (e.g., mejorar la seguridad)? Tal y como está ahora, sería necesario incluirlos en cada fichero controlador. Si se olvida poner algo en alguno de ellos, esperemos no sea el de seguridad...